专利摘要:
A video encoder can determine a motion vector from a non-adjacent block of a current image of the video data. The non-adjacent block is not adjacent to a current block in the current image. Additionally, the video encoder determines, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block. The video encoder can determine a motion vector for the current block. The video encoder can also determine a predictive block based on the motion vector of the current block.
公开号:BR112019025566A2
申请号:R112019025566-4
申请日:2018-06-11
公开日:2020-06-23
发明作者:Chen Yi-Wen;Yi-Wen Chen;Chien Wei-Jung;Marta Karczewicz;Sun Yu-Chen;Wei-Jung Chien;Zhang Li;Yu-Chen Sun;Lee Sungwon;Li Zhang;Li Xiang;Sungwon Lee;Chuang Hsiao-Chiang;Xiang Li;Chen Jianle;Hsiao-Chiang Chuang;Seregin Vadim;Jianle Chen;Karczewicz Marta;Vadim SEREGIN
申请人:Qualcomm Incorporated;
IPC主号:
专利说明:

[0001] [0001] This application claims the benefit of provisional patent application No. U.S. 62 / 519,007, filed on June 13, 2017, the entire content of which is incorporated by reference. TECHNICAL FIELD
[0002] [0002] This disclosure refers to devices configured to perform video encoding. BACKGROUND
[0003] [0003] Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital direct broadcast systems, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, computers tablet type, e-book readers, digital cameras, digital recording devices, digital media players, video game devices, video game consoles, satellite or cellular radio phones, so-called “smart phones”, video teleconferencing devices , video streaming devices and the like. Digital video devices implement video compression techniques, such as those described in the standards defined by MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264 / MPEG-4, Part 10, Video coding advanced video (AVC) or ITU-T H.265, high-efficiency video encoding (HEVC) and extensions of such standards. Video devices can transmit, receive, encode, decode and / or store digital video information more efficiently through the implementation of such video compression techniques.
[0004] [0004] Video compression techniques can perform spatial prediction (intra-image) and / or temporal prediction (inter-image) to reduce or remove redundancy inherent in video sequences. For block-based video encoding, a video slice (for example, a video frame or a portion of a video frame) can be partitioned into video blocks, such as tree encoding blocks and encoding blocks. The temporal or spatial prediction results in a predictive block for a block to be coded. Residual data represents pixel differences between the original block to be encoded and the predictive block. For additional compression, residual data can be transformed from the pixel domain into a transform domain, resulting in residual transform coefficients, which can then be quantified. SUMMARY
[0005] [0005] In general, this disclosure describes techniques related to motion vector prediction. The techniques of this disclosure can be applied to any of the existing video codecs, such as HEVC (high efficiency video encoding) or any future video encoding standards.
[0006] [0006] In one example, this disclosure describes a method for decoding video data, the method comprising: determining, by means of a video decoder, a motion vector of a non-adjacent block of a current image of the data of video, the non-adjacent block being non-adjacent to a current block of the current image; determine, by means of the video decoder, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine, by means of the video decoder, based on the MVP for the current block, a motion vector of the current block; determine, through the video decoder, a predictive block based on the motion vector of the current block; reconstruct, using the video decoder, based on the predictive block, sample values of the current image.
[0007] [0007] In another example, this disclosure describes a method for encoding video data, the method comprising: determining, by means of a video encoder, a motion vector of a non-adjacent block of a current image of the data video, the non-adjacent block is not adjacent to a current block of the current image; determine, by means of the video encoder, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine, using the video encoder, a motion vector for the current block, where the motion vector is equal to a MVP motion vector for the current block or is equal to the MVP motion vector for the current block plus a motion vector difference (MVD) signaled in a bit stream; determine, through the video encoder, a predictive block based on the motion vector of the current block; and generate, through the video encoder, based on the predictive block, residual sample values.
[0008] [0008] In another example, this disclosure describes a device for decoding video data, the device comprising: one or more storage media configured to store video data; and one or more processors configured to: determine a motion vector of a non-adjacent block of a current image of the video data, the non-adjacent block being non-adjacent to a current block of the current image; determine, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine, based on the MVP for the current block, a motion vector of the current block; determine a predictive block based on the movement vector of the current block; and reconstruct, based on the predictive block, sample values from the current image.
[0009] [0009] In another example, this disclosure describes a device for encoding video data, the method comprising: determining, by means of a video encoder, a motion vector of a non-adjacent block of a current image of the data video, the non-adjacent block is not adjacent to a current block of the current image; determine, by means of the video encoder, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine, using the video encoder, a motion vector for the current block, where the motion vector is equal to a MVP motion vector for the current block or is equal to the MVP motion vector for the current block plus a motion vector difference (MVD) signaled in a bit stream; determine, through the video encoder, a predictive block based on the motion vector of the current block; and generate, through the video encoder, based on the predictive block, residual sample values.
[0010] [0010] In another example, this disclosure describes a device for decoding video data, the device comprising: means for determining a motion vector of a non-adjacent block of a current image of the video data, the block being non-adjacent is not adjacent to a current block of the current image; means for determining, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; means for determining, based on the MVP for the current block, a motion vector for the current block; means for determining a predictive block based on the motion vector of the current block; and means to reconstruct, based on the predictive block, sample values from the current image.
[0011] [0011] In another example, this disclosure describes an apparatus for encoding video data, the apparatus comprising: means for determining a motion vector of a non-adjacent block of a current image of the video data, the block being non-adjacent is not adjacent to a current block of the current image; means for determining, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; means for determining a motion vector of the current block, where the motion vector is equal to an MVP motion vector for the current block or is equal to the MVP motion vector for the current block plus a motion vector difference (MVD) signaled in a bit stream; means for determining a predictive block based on the motion vector of the current block; and means to generate, based on the predictive block, residual sample values.
[0012] [0012] In another example, this disclosure describes a computer-readable storage medium that stores instructions that, when executed, cause one or more processors to: determine a motion vector of a non-adjacent block of a current image of the data video, the non-adjacent block is not adjacent to a current block of the current image; determine, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine, based on the MVP for the current block, a motion vector of the current block; determine a predictive block based on the movement vector of the current block; and reconstruct, based on the predictive block, sample values from the current image.
[0013] [0013] In another example, this disclosure describes a computer-readable storage medium that stores instructions that, when executed, cause one or more processors to: determine a motion vector of a non-adjacent block of a current image of the data video, the non-adjacent block is not adjacent to a current block of the current image; determine, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine a motion vector of the current block, where the motion vector is equal to an MVP motion vector for the current block or is equal to the MVP motion vector for the current block plus a motion vector difference (MVD ) signaled in a bit stream; determine a predictive block based on the movement vector of the current block; and generate, based on the predictive block, residual sample values.
[0014] [0014] Details of one or more aspects of the disclosure are presented in the accompanying drawings and in the description below. Other resources, objectives and advantages of the techniques described in this disclosure will be evident from the description, drawings and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] [0015] Figure 1 is a block diagram illustrating an exemplary video encoding and decoding system that can use one or more techniques described in this disclosure.
[0016] [0016] Figure 2 is an example of spatial and temporal neighboring motion vector candidates for merging / ignoring modes.
[0017] [0017] Figure 3 is an example of bilateral correspondence.
[0018] [0018] Figure 4 is an example of model matching.
[0019] [0019] Figure 5 is an example of estimation of unilateral movement in upward conversion of frame rate.
[0020] [0020] Figure 6 is an example of a decoder side motion vector refinement based on bilateral model correspondence.
[0021] [0021] Figure 7 is an example of motion prediction of advanced temporal motion vector prediction for a coding unit.
[0022] [0022] Figure 8 is an example of a coding unit with four sub-blocks and their neighboring blocks.
[0023] [0023] Figure 9 is a block diagram of an example simplified affine movement model for a current affine block.
[0024] [0024] Figure 10 is an example of a simplified affine movement model for a current affine block.
[0025] [0025] Figure 11 is an example of a motion compensation prediction motion vector field.
[0026] [0026] Figure 12 is an example of a stored motion vector field.
[0027] [0027] Figure 13 is an example of motion vector prediction for AF_INTER.
[0028] [0028] Figure 14A is a block diagram that illustrates a selection order for candidate blocks for AF_MERGE.
[0029] [0029] Figure 14B is a block diagram that illustrates candidates for AF_MERGE if a lower left candidate block is coded in the related mode.
[0030] [0030] Figure 15 is a block diagram illustrating exemplary non-adjacent blocks, according to a technique of this disclosure.
[0031] [0031] Figure 16 is a block diagram that illustrates an example of a selection of non-adjacent blocks, according to a technique of this disclosure.
[0032] [0032] Figure 17 is a block diagram that illustrates an example of a selection of non-adjacent blocks based on a parental block.
[0033] [0033] Figure 18A is a block diagram that illustrates an example of changing the position of a non-adjacent block, according to a technique of this disclosure.
[0034] [0034] Figure 18B is a block diagram that illustrates an example of changing the position of a non-adjacent block, according to a technique of this disclosure.
[0035] [0035] Figure 19A is a block diagram that illustrates an example of a threshold for modifying a non-adjacent block, according to a technique of this disclosure.
[0036] [0036] Figure 19B is a block diagram that illustrates an example of a threshold for modifying a non-adjacent block, according to a technique of this disclosure.
[0037] [0037] Figure 20 is a block diagram that illustrates an example of a selection of non-adjacent blocks, according to a technique of this disclosure.
[0038] [0038] Figure 21 is a block diagram that illustrates an example of a selection of non-adjacent blocks, according to a technique of this disclosure.
[0039] [0039] Figure 22 is a block diagram that illustrates an example of a selection of non-adjacent blocks, according to a technique of this disclosure.
[0040] [0040] Figure 23 is a block diagram that illustrates an example of a selection of non-adjacent blocks based on a parental block, according to a technique of this disclosure.
[0041] [0041] Figure 24 is a block diagram that illustrates an example video encoder that can implement one or more techniques described in this disclosure.
[0042] [0042] Figure 25 is a block diagram that illustrates an example video decoder that can implement one or more techniques described in this disclosure.
[0043] [0043] Figure 26 is a flow chart illustrating an exemplary operation of a video encoder to encode video data, according to one or more techniques of this disclosure.
[0044] [0044] Figure 27 is a flow chart illustrating an exemplary operation of a video decoder to decode video data according to one or more techniques of this disclosure.
[0045] [0045] Figure 28 is a flow chart illustrating an exemplary operation to determine a NA-SMVP using frame rate upward motion vector (FRUC) candidate, according to a technique of this disclosure.
[0046] [0046] Figure 29 is a flowchart that illustrates an example operation of a video encoder that includes synthetic candidates in a list of MVP candidates for a current block, according to one or more techniques of this disclosure.
[0047] [0047] Figure 30 is a flow chart illustrating an exemplary operation of a video decoder that includes synthetic candidates in a list of MVP candidates for a current block, according to one or more techniques of this disclosure.
[0048] [0048] Figure 31 is a flowchart illustrating an exemplary operation of a video encoder to encode video data, according to a technique of this disclosure.
[0049] [0049] Figure 32 is a flowchart illustrating an exemplary operation of a video decoder to decode video data, according to a technique of this disclosure.
[0050] [0050] Figure 33 is a flow chart illustrating an exemplary operation of a video encoder to encode video data, according to a technique of this disclosure.
[0051] [0051] Figure 34 is a flow chart that illustrates an exemplary operation of a video decoder to decode video data, according to a technique of this disclosure.
[0052] [0052] Figure 35 is a flowchart illustrating an exemplary operation of a video encoder to encode video data, according to a technique of this disclosure.
[0053] [0053] Figure 36 is a flowchart illustrating an exemplary operation of a video decoder to decode video data, according to a technique of this disclosure. DETAILED DESCRIPTION
[0054] [0054] As video compression has improved, the proportion of encoded data used to represent motion vectors has increased. Consequently, in order to achieve greater video compression, it may be desirable to improve the way in which motion vectors are encoded. It is desirable to achieve greater video compression for several reasons, such as being able to send higher quality video data through the existing infrastructure, reducing network congestion and so on. Motion vector prediction is a common way to reduce the amount of data used to encode a motion vector for a block. In most motion vector prediction systems, a video encoder determines a list of motion vector predictors for the block, selects a motion vector predictor, and then signals a position in the selected motion vector list. A video decoder determines the same list of motion vector predictors and determines the selected motion vector predictor based on the data signaled in the bit stream. The video decoder can then use the motion vector predictor to determine one or more motion vectors of the block.
[0055] [0055] This disclosure describes techniques that can improve motion vector prediction, and thus potentially improve the efficiency of video compression, more fully using the reconstructed motion vector information. For example, this disclosure describes techniques that use motion vector predictors from one or more blocks in a current image that are not spatially adjacent to a current block in the current image. In this example, a video encoder (for example, a video encoder or a video decoder) can determine a motion vector for a non-adjacent block of a current image of the video data. The non-adjacent block is not adjacent to a current block in the current image. Additionally, in this example, the video encoder can determine, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block. The video encoder can then determine (for example, based on the MVP for the current block) a motion vector from the current block. In addition, the video encoder can determine a predictive block based on the motion vector of the current block.
[0056] [0056] Additionally, this disclosure describes techniques for generating synthetic motion vector candidates. This disclosure also describes techniques for generating additional temporal motion vector predictor candidates. In addition, this disclosure describes techniques that use intra-prediction modes from one or more blocks of a current image that are not spatially adjacent to a current block of the current image to determine one or more intra-prediction modes most likely in a set of intra-prediction modes most likely for the current block. The techniques of this disclosure, or subcombination thereof, can be used together or separately.
[0057] [0057] Figure 1 is a block diagram illustrating an exemplary video encoding and decoding system 10 that can use techniques of this disclosure. As shown in Figure 1, system 10 includes a source device 12 that provides encoded video data to be further decoded by a destination device 14. Source device 12 can be an apparatus for encoding video data and the destination 14 can be a device for decoding video data. In particular, the source device 12 provides the encoded video data to the target device 14 via computer-readable media 16. The source device 12 and the target device 14 can comprise any of a wide range of devices and devices, including desktop computers, notebook computers (ie, laptop computers), tablet computers, signal decoders, telephone devices such as so-called “smart” phones, tablet computers, televisions, cameras , display devices,
[0058] [0058] The system illustrated in Figure 1 is just an example. Techniques for processing video data can be performed by any digital video encoding and / or decoding device. In some examples, the techniques can be performed by a video encoder / decoder, typically referred to as a "CODEC". The source device 12 and the target device 14 are examples of such encoding devices in which the source device 12 generates encoded video data for transmission to the target device 14. In some examples, the source device 12 and the target device 14 operates in a substantially symmetrical manner so that each of the source device 12 and the target device 14 includes video encoding and decoding components. Therefore, system 10 can support unidirectional or bidirectional video transmission between the source device 12 and the destination device 14, for example, for video streaming, video playback, video broadcasting or video telephony.
[0059] [0059] In the example in Figure 1, the source device 12 includes a video source 18, storage media 19 configured to store video data, a video encoder 20 and an output interface 22. The destination device 14 includes an input interface 26, storage media 28 configured to store encoded video data, a video decoder 30 and a display device 32. In other examples, the source device 12 and destination device 14 include other components or arrangements. For example, source device 12 can receive video data from an external video source, such as an external camera. Similarly, the target device 14 can interface with an external display device, instead of including an integrated display device.
[0060] [0060] Video source 18 is a source of video data. The video data can comprise a series of images. Video source 18 can include a video capture device, such as a video camera, a video file that contains previously captured video and / or a video feed interface for receiving video data from a content provider of video. In some instances, video source 18 generates video data based on computer graphics or a combination of live video, archived video and computer generated video. The storage media 19 can be configured to store the video data. In each case, the captured, pre-captured or computer generated video can be encoded by the video encoder 20.
[0061] [0061] Output interface 22 can output encoded video information to computer-readable media 16. Output interface 22 can comprise different types of components or devices. For example, output interface 22 may comprise a wireless transmitter, a modem, a wired network component (for example, an Ethernet card) or another physical component. In examples where output interface 22 comprises a wireless transmitter, output interface 22 can be configured to transmit data, such as encoded video data, modulated according to a cellular communication standard, such as 4G, 4G-LTE, Advanced LTE, 5G and the like. In some examples where output interface 22 comprises a wireless transmitter, output interface 22 can be configured to transmit data, such as encoded video data, modulated according to other wireless standards, such as an IEEE 802.11 specification, a IEEE 802.15 specification (for example, ZigBee ™), a Bluetooth ™ standard and the like. In some examples, the output interface circuitry 22 is integrated with the video encoder circuitry 20 and / or other components of the source device 12. For example, the video encoder 20 and the output interface 22 can be parts of a system on a chip (SoC). The SoC can also include other components, such as a general purpose microprocessor, a graphics processing unit, and so on.
[0062] [0062] Target device 14 can receive encoded video data to be decoded via computer-readable media 16. Computer-readable media 16 can comprise any type of media or device capable of moving encoded video data from from the source device 12 to the target device 14. In some examples, computer-readable media 16 comprises a communication medium to enable the source device 12 to transmit encoded video data directly to the target device 14 in real time . The communication medium can comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines. Communication media can form part of a packet-based network, such as a local area network, a wide area network, or a global network, such as the Internet. The communication medium may include routers, switches, base stations or any other equipment that may be useful to facilitate communication from the source device 12 to the destination device 14. The destination device 14 can comprise one or more media data storage devices configured to store encoded video data and decoded video data.
[0063] [0063] In some examples, output interface 22 may output data, such as encoded video data, to an intermediate device, such as a storage device. Similarly, the input interface 26 of the target device 14 can receive encrypted data from the intermediate device. The intermediate device can include any of a variety of data storage media distributed or accessed locally such as a hard drive, Blu-ray discs, DVDs, CD-ROMs, flash memory, volatile or non-volatile memory, or any other media. digital storage suitable for storing encoded video data. In some examples, the middle device corresponds to a file server. Exemplary file servers include Web servers, FTP servers, networked storage devices (NAS) or local disk drives.
[0064] [0064] The target device 14 can access the encoded video data through any standard data connection, including an Internet connection. This can include a wireless channel (for example, a Wi-Fi connection), a wired connection (for example, DSL, cable modem, etc.), or a combination of both that is suitable for accessing encoded video data stored on a file server. The transmission of encoded video data from the storage device can be a continuous transmission, a downloadable transmission or a combination thereof.
[0065] [0065] Computer-readable media 16 may include transient media, such as a wired network transmission or wireless broadcast, or storage media (that is, non-transient storage media), such as a hard disk, magnetic disk, disk compact disc, digital video disc, Blu-ray disc or other computer-readable media. In some examples, a network server (not shown) can receive encoded video data from the source device 12 and provide the encoded video data to the destination device 14, for example, via network transmission. Similarly, a computing device of a media production facility, such as a disc embossing facility, can receive encoded video data from the source device 12 and produce a disc containing the encoded video data. Therefore, computer-readable media 16 can be understood to include one or more computer-readable media in several ways, in several examples.
[0066] [0066] The input interface 26 of the target device 14 receives data from the computer-readable media 16. The input interface 26 can comprise several types of components or devices. For example, input interface 26 may comprise a wireless receiver, a modem, a wired network component (for example, an Ethernet card) or another physical component. In examples where the input interface 26 comprises a wireless receiver, the input interface 26 can be configured to receive data, such as the bit stream, modulated according to a cellular communication standard, such as 4G, 4G-LTE, Advanced LTE, 5G and the like. In some examples where the input interface 26 comprises a wireless receiver, the input interface 26 can be configured to receive data, such as the bit stream, modulated according to other wireless standards, such as an IEEE 802.11 specification, a IEEE 802.15 specification (for example, ZigBee ™), a Bluetooth ™ standard and the like. In some examples, the circuitry of the input interface 26 can be integrated with the circuitry of the video decoder 30 and / or other components of the target device 14. For example, the video decoder 30 and the input interface 26 they can be part of a SoC. The SoC can also include other components, such as a general purpose microprocessor, a graphics processing unit, and so on.
[0067] [0067] Storage media 28 can be configured to store encoded video data, such as encoded video data (e.g., a bit stream) received by the input interface 26. Display device 32 displays the decoded video data for a user. Display device 32 may comprise any of a variety of display devices such as a liquid crystal display (LCD), plasma display, organic light emitting diode (OLED) display or other type of display device .
[0068] [0068] Each of the video encoder 20 and the video decoder 30 can be deployed as any one of a variety of suitable circuit sets, such as one or more microprocessors, digital signal processors (DSPs), application integrated circuits (ASICs), field programmable port arrangements (FPGAs), discrete logic, software, hardware, firmware or any combination thereof. When techniques are partially deployed in software, a device can store instructions for the software on appropriate non-transitory, computer-readable media and can execute instructions in hardware using one or more processors to perform the techniques in this disclosure.
[0069] [0069] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) are now studying the potential need for standardization of future video encoding technology with a compression capacity that significantly exceeds that of the current HEVC standard (including its current extensions and short-term extensions for encoding screen content and encoding high dynamic range). The groups are working together on this exploration activity in a joint collaborative effort known as the Joint Video Exploration Team (JVET) to evaluate compression technology projects proposed by their experts in this field. JVET first met on October 19-21, 2015. Chen et al., “Algorithm Description of Joint Exploration Test Model 5”, Joint Video Exploration Team (JVET) by ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 5th Meeting, Geneva, CH, January 12-20, 2017, document JVET E-1001, is an algorithmic description of the Joint Exploration Test Model 6 (JEM5). Chen et al., “Algorithm Description of Joint Exploration Test Model 6”, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 6th Meeting, Hobart, AU , March 31 to April 7, 2017, document JVET F- 1001, is an algorithm description of the Joint Exploration Test Model 6 (JEM6). The video encoder 20 and video decoder 30 can operate according to the joint exploration model or the new versatile video coding standard (VVC - “Versatile Video Coding”) currently under development.
[0070] [0070] This disclosure can generally refer to the "signaling" of certain information, as elements of syntax. The term "signaling" can generally refer to the communication of elements of syntax and / or other data used to decode the encoded video data. Such communication can occur in real time or near real time. Alternatively, such communication can occur over a period of time, as it could occur by storing syntax elements in a computer-readable storage medium in a bit stream at the time of encoding, which can then be retrieved by a decoding device at any time after being stored on that media.
[0071] [0071] In HEVC and other video encoding specifications, video data includes a series of images. Images can also be referred to as "frames". An image can include one or more sample matrices. Each respective sample matrix of an image can comprise a sample matrix for a respective color component. An image can include three sample matrices, denoted SL, SCb and SCr. SL is a two-dimensional matrix (ie, a block) of luma samples. SCb is a two-dimensional matrix of Cb chroma samples. SCr is a two-dimensional matrix of Cr chroma samples. In other cases, an image may be monochromatic and may include only one matrix of luma samples.
[0072] [0072] As part of encoding video data, video encoder 20 can encode images of video data. In other words, the video encoder 20 can generate encoded representations of the images of the video data. A coded representation of an image can be referred to in this document as an “image converted into code” or an “encoded image”.
[0073] [0073] To generate an encoded representation of an image, video encoder 20 can encode blocks of the image. The video encoder 20 may include, in a bit stream, an encoded representation of the video block. In some examples, to encode a block of the image, the video encoder 20 performs intra-prediction or inter-prediction to generate one or more predictive blocks. In addition, video encoder 20 can generate residual data for the block. The residual block comprises residual samples. Each residual sample can indicate a difference between a sample from one of the generated predictive blocks and a corresponding sample from the block. In this way, the video encoder 20 can generate, based on a predictive block, residual sample values. The video encoder 20 can apply a transform to blocks of residual samples to generate transform coefficients. In addition, the video encoder 20 can quantify the transform coefficients. In some examples, video encoder 20 may generate one or more elements of syntax to represent a transform coefficient. The video encoder 20 can entropy encode one or more of the syntax elements that represent the transform coefficient.
[0074] [0074] More specifically, by encoding video data according to HEVC or other video encoding specifications, to generate an encoded representation of an image, video encoder 20 can partition each sample image sample into blocks of tree coding (CTBs) and encoding CTBs. A CTB can be an NxN block of samples in a sample matrix of an image. In the main HEVC profile, the size of a CTB can be in the range of 16x16 to 64x64, although technically the CTB sizes of 8x8 can be supported.
[0075] [0075] An encoding tree unit (CTU) of an image may comprise one or more CTBs and may comprise syntax structures used to encode samples from one or more CTBs. For example, each CTU can comprise a CTB of luma samples, two corresponding chroma sample CTBs and syntax structures used to encode the CTB samples. In monochrome images or images that have three separate color planes, a CTU can comprise a single CTB and syntax structures used to encode the CTB samples. A CTU can also be referred to as a “tree block” or a “larger coding unit” (LCU). In this disclosure, a "syntax structure" can be defined as zero or more syntax elements present together in a bit stream in a specified order. In some codecs, an encoded image is an encoded representation that contains all the CTUs in the image.
[0076] [0076] To encode a CTU of an image, video encoder 20 can partition CTU CTBs into one or more encoding blocks. A coding block is an NxN block of samples. In some codecs, to encode a CTU of an image, the video encoder 20 can recursively quad quadtree the tree encoding blocks of a CTU to partition the
[0077] [0077] Additionally, the video encoder 20 can encode CUs of an image of the video data. In some codecs, as part of encoding a CU, video encoder 20 can partition a CU encoding block into one or more prediction blocks. A prediction block is a rectangular block (that is, square or non-square) of samples to which the same prediction is applied. A CU prediction unit (PU) can comprise one or more CU prediction blocks and syntax structures used to predict the one or more prediction blocks. For example, a PU can comprise a luma sample prediction block, two corresponding chroma sample prediction blocks and syntax structures used to predict the prediction blocks. In monochrome images or images that have three separate color planes, a PU can comprise a single prediction block and syntax structures used to predict the prediction block.
[0078] [0078] The video encoder 20 can generate a predictive block (for example, a luma predictive block, Cb and Cr) for a prediction block (for example, luma prediction block, Cb and Cr) of a PU a CU. The video encoder 20 can use intra-prediction or inter-prediction to generate a predictive block. If the video encoder 20 uses intra-prediction to generate a predictive block, the video encoder 20 can generate the predictive block based on decoded samples of the image that includes the CU. If video encoder 20 uses inter-prediction to generate a PU predictive block from a current image, video encoder 20 can generate the PU predictive block based on the decoded samples of a reference image (i.e., image in addition to the current image). In HEVC, video encoder 20 generates a “prediction unit” syntax structure within a “coding unit” syntax structure for inter-predicted PUs, but does not generate a “prediction unit” syntax structure. within a “coding unit” syntax structure for intra-predicted PUs. Instead, in HEVC, the syntax elements related to intra-predicted PUs are included directly in the “coding unit” syntax structure. When a CU is encoded, the CU can be additionally partitioned into 2 or 4 PUs or become just a PU when no additional partition is applied. When two PUs are present in a CU, they can be half size rectangles or two rectangle sizes with 1⁄4 or 3⁄4 size CU. When the CU is inter-coded, a set of movement information is present for each PU. In addition, each PU is coded with a unique inter-prediction mode to derive the set of motion information. In this disclosure, the term "block" can refer to CU, PU or any other encoding units used for video encoding purposes.
[0079] [0079] A video encoder, such as video encoder 20 or video decoder 30, can perform intra-prediction using an intra-prediction mode selected from a plurality of available intra-prediction modes . Intra-prediction modes can include directional intra-prediction modes, which can also be called intra-prediction directions. Different directional intra-prediction modes correspond to different angles. In some examples, to determine a value from a current sample of a predictive block using a directional intra-prediction mode, the video encoder can determine a point at which a line that passes through the current sample at the angle that corresponds to the directional intra-prediction mode it crosses a set of edge samples. Edge samples can comprise samples in a column immediately to the left of the predictive block and samples in a row immediately above the predictive block. If the point is between two of the edge samples, the video encoder can interpolate or otherwise determine a value that corresponds to the point. If the point matches a single sample among the edge samples, the video encoder can determine that the point value is equal to the edge sample. The video encoder can set the current sample value of the predictive block equal to the determined point value.
[0080] [0080] In HEVC and some other codecs, video encoder 20 encodes a CU using only one prediction mode (ie, intra-prediction or inter-prediction). Thus, in HEVC and in particular other codecs, the video encoder 20 can generate predictive blocks of each PU of a CU with the use of intra-prediction or the video encoder 20 can generate predictive blocks of each PU of the CU with the use of inter-prediction. When video encoder 20 uses inter-prediction to encode a CU, video encoder 20 can partition the CU into 2 or 4 PUs, or one PU corresponds to the entire CU. When two PUs are present in a CU, the two can be half size rectangles or two rectangle sizes 1⁄4 or 3⁄4 the CU size. In HEVC, there are eight partition modes for a CU encoded with the inter-prediction mode, that is, PART_2Nx2N, PART 2NxN, PART Nx2N, PART NxN, PART_2NxnU, PART_2NxnD, PART_nLx2N and PART_nRx2N. When a CU is intra-predicted, 2Nx2N and NxN are the only formats of
[0081] [0081] The video encoder 20 can generate one or more residual blocks for the CU. For example, video encoder 20 can generate a luma residual block for the CU. Each sample in the CU luma residual block indicates a difference between a luma sample in one of CU's predictive luma blocks and a corresponding sample in the original CU luma coding block. In addition, video encoder 20 can generate a residual block Cb for the CU. Each sample in the residual block Cb of a CU can indicate a difference between a sample Cb in one of the predictive Cb blocks of CU and a corresponding sample in the original Cb coding block of CU. The video encoder 20 can also generate a residual block Cr for the CU. Each sample in the CU residual Cr block can indicate a difference between a Cr sample in one of the CU predictive Cr blocks and a corresponding sample in the original CU Cr coding block.
[0082] [0082] Additionally, the video encoder 20 can decompose the residual blocks of a CU into one or more transform blocks. For example, video encoder 20 can use the quadtree partition to decompose the residual blocks of a CU into one or more transform blocks. A transform block is a rectangular block (for example, square or non-square) of samples to which the same transform is applied. A transform unit (TU) of a CU can comprise one or more transform blocks. For example, a TU may comprise a luma sample transform block, two corresponding chroma sample transform blocks, and syntax structures used to transform the transform block samples. Thus, each CU of a CU can have a luma transform block, a Cb transform block and a Cr transform block. The TU luma transform block can be a sub-block of the CU luma residual block. The transform block Cb can be a sub-block of the residual block Cb of CU. The transform block Cr can be a sub-block of the residual block Cr of CU. In monochrome images or images that have three separate color planes, a TU can comprise a single transform block and syntax structures used to transform the samples in the transform block.
[0083] [0083] The video encoder 20 can apply one or more transforms in a transform block of a TU to generate a coefficient block for the TU. A coefficient block can be a two-dimensional matrix of transform coefficients. A transform coefficient can be a scalar quantity. In some examples, the one or more transforms convert the transform block from a pixel domain to a frequency domain. Thus, in such examples, a transform coefficient can be a scalar quantity considered in a frequency domain. A transform coefficient level is an integer quantity that represents a value associated with a particular two-dimensional frequency index in a decoding process before scaling to compute a transform coefficient value.
[0084] [0084] In some examples, video encoder 20 ignores the application of transforms in the transform block. In such examples, the video encoder 20 can treat residual sample values in the same way as the transform coefficients. Thus, in the examples where the video encoder 20 ignores the application of the transforms, the following discussion of transform coefficients and coefficient blocks may be applicable to transform blocks of residual samples.
[0085] [0085] According to JEM, a video encoder (such as video encoder 200) partitions an image into a plurality of tree encoding units (CTUs). Video encoder 200 can partition a CTU according to a tree structure, such as a quadtree-binary tree structure (QTBT). The QTBT structure of JEM removes the concepts of various partition types, such as the separation between HEVC CUs, PUs and TUs. Thus, in the context of JEM, the term “PU” or “TU” can be applied to a CU. A JT QTBT structure includes two levels: a first level partitioned according to the quadtree partition and a second level partitioned according to the binary tree partition. A root node of the QTBT structure corresponds to a CTU. The leaf nodes of the binary trees correspond to the coding units (CUs).
[0086] [0086] In some examples, video encoder 200 and video decoder 300 may use a single QTBT structure to represent each of the luminance and chrominance components, while in other examples, video encoder 200 and video decoder 300 can use two or more QTBT structures, such as a QTBT structure for the luminance component and another QTBT structure for both chrominance components (or two QTBT structures for the respective chrominance components).
[0087] [0087] After the generation of a coefficient block, the video encoder 20 can quantify the coefficient block to possibly reduce the amount of data used to represent the coefficient block, potentially providing additional compression. Quantification generally refers to a process in which a range of values is compressed into a single value. For example, quantification can be done by dividing a value by a constant and then rounding up to the nearest whole number. To quantize the coefficient block, the video encoder 20 can quantify the transform coefficients of the coefficient block. Quantification can reduce the bit depth associated with some or all of the transform coefficients. For example, a n-bit transform coefficient can be rounded down to a m-bit transform coefficient during quantization, where n is greater than m. In some instances, video encoder 20 ignores quantization.
[0088] [0088] Video encoder 20 can generate syntax elements that indicate some or all potentially quantized transform coefficients. Video encoder 20 can entropy encode one or more of the syntax elements that indicate a quantized transform coefficient. For example, video encoder 20 can perform binary context-adaptive arithmetic (CABAC) encoding on the syntax elements that indicate the quantized transform coefficients. In this way, an encoded block (for example, an encoded CU) can include the entropy-encoded syntax elements that indicate the quantized transform coefficients.
[0089] [0089] Video encoder 20 can output a bit stream that includes encoded video data. In other words, the video encoder 20 can output a bit stream that includes an encoded representation of video data. The encoded representation of the video data can include an encoded image representation of the video data. For example, the bit stream may comprise a bit stream that forms a representation of encoded images of the video data and associated data. In some examples, a representation of an encoded image may include encoded representations of blocks of the image.
[0090] [0090] The video decoder 30 can receive a bit stream generated by the video encoder 20. As noted above, the bit stream can comprise an encoded representation of video data. The video decoder 30 can decode the bit stream to reconstruct images from the video data. As part of the bit stream decoding, the video decoder 30 can obtain elements of bit stream syntax. The video decoder 30 can reconstruct images of the video data based, at least in part, on the syntax elements obtained from the bit stream. The process for reconstructing images from the video data can generally be reciprocal to the process performed by the video encoder 20 to encode the images.
[0091] [0091] For example, as part of decoding an image of video data, video decoder 30 can use inter-prediction or intra-prediction to generate predictive blocks. In addition, the video decoder 30 can determine transform coefficients based on syntax elements obtained from the bit stream. In some examples, the video decoder 30 inversely quantifies the determined transform coefficients. Inverse quantification maps the quantified value to a reconstructed value. For example, video decoder 30 can reverse a value by determining the value multiplied by a size of the quantizing step. In addition, the video decoder 30 can apply an inverse transform to the transform coefficients determined to determine residual sample values. The video decoder 30 can reconstruct an image block based on the residual samples and the corresponding samples of the generated predictive blocks. For example, the video decoder 30 can add residual samples to the corresponding samples of the generated predictive blocks to determine reconstructed samples of the block.
[0092] [0092] More specifically, in HEVC and other video encoding specifications, the video decoder 30 can use inter-prediction or intra-prediction to generate one or more predictive blocks for each PU of a current CU. In addition, the video decoder 30 can inversely quantify the TU coefficient blocks of the current CU. The video decoder 30 can perform inverse transforms in the coefficient blocks to reconstruct transform blocks of the current CU's TUs. The video decoder 30 can reconstruct a current CU encoding block based on samples from the predictive blocks of the current CU PUs and residual samples from the transform blocks of the current CU TUs. In some instances, the video decoder 30 can reconstruct the encoding blocks of the current CU, by adding the samples of the predictive blocks for PUs of the current CU to the corresponding decoded samples of the transform blocks of the current CU's TUs. By reconstructing the encoding blocks for each CU of an image, the video decoder 30 can reconstruct the image.
[0093] [0093] A slice of an image can include an entire number of blocks in the image. For example, in HEVC and other video encoding specifications, a slice of an image can include an entire number of CTUs in the image. The CTUs for a slice can be ordered consecutively in a scan order, such as a raster scan order. In HEVC and potentially other codecs, a slice is defined as an integer number of CTUs contained in an independent slice segment and in all subsequent dependent slice segments (if any) that precede the next independent slice segment (if any) within the same access unit. Additionally, in HEVC and potentially other codecs, a slice segment is defined as an integer number of CTUs ordered consecutively in the mosaic scan and contained in a single NAL unit. A mosaic scan is a specific sequential order of CTBs that partition an image in which CTBs are ordered consecutively in the CTB raster scan in a mosaic, while the mosaics in an image are ordered consecutively in a raster scan of the image mosaics. A block is a rectangular region of CTBs within a particular mosaic column and a particular mosaic row in an image.
[0094] [0094] As mentioned above, a video encoder (for example, video encoder 20 or video decoder 30) can apply inter-prediction to generate a predictive block for a video block of a current image. For example, in the context of HEVC and other video encoding specifications, the video encoder can apply inter-prediction to generate a predictive block for a PU predictive block from a CU of the current block. If the video encoder applies the prediction to generate a predictive block, the video encoder can generate the predictive block based on decoded samples of one or more reference images. Reference images are images that are different from the current image. The video encoder can determine one or more reference image lists. Each of the reference image lists can include zero or more reference images. In the context of HEVC and other video encoding specifications, one of the reference image lists can be referred to as Reference image list 0 (that is, RefPicList0 or list0) and another reference image list can be called as
[0095] [0095] The video encoder can apply unidirectional inter-prediction or bidirectional inter-prediction to generate a predictive block. When the video encoder applies unidirectional inter-prediction to generate a predictive block for a video block, the video encoder determines a single reference block for the video block based on samples from a single reference image. Additionally, when the video encoder applies unidirectional inter-prediction, the video encoder can define the predictive block equal to the reference block. When the video encoder applies bidirectional inter-prediction to generate a predictive block for a video block, the video encoder determines two reference blocks for the video block. In some examples, the two reference blocks are in reference images in different reference image lists. In addition, when the video encoder applies bidirectional inter-prediction, the video encoder can determine the predictive block based on the two reference blocks. For example, the video encoder can determine the predictive block so that each sample in the predictive block is a weighted average of the corresponding samples from the two reference blocks. Reference list indicators can be used to indicate which of the reference image lists include reference images used to determine reference blocks.
[0096] [0096] As mentioned above, a video encoder can determine a reference block based on samples of a reference image. In some examples, the video encoder can determine the reference block so that each sample in the reference block is equal to a sample of the reference image. In some examples, as part of determining a reference block, the video encoder can interpolate samples from the reference block from samples of the reference image. For example, the video encoder can determine that a sample of the predictive block is a weighted average of two or more samples of the reference image.
[0097] [0097] In some examples, when video encoder 20 performs unidirectional inter-prediction, video encoder 20 looks for a reference block within one or more reference images in one of the reference image lists. The reference block can be a sample block that is similar to the prediction block. In some instances, video encoder 20 uses an average squared error to determine the similarity between the reference block and the prediction block. In addition, video encoder 20 can determine motion information for the prediction block. The motion information (that is, the motion parameters) for the prediction block can include a motion vector and a reference index. The motion vector can indicate a spatial shift between a position of the particular video block within the current image (that is, the image that includes the particular video block) and a position of the reference block within the reference image. The reference index indicates a position within the reference image list of the reference frame that contains the reference image list. The predictive block for the particular video block can be the same as the reference block.
[0098] [0098] When video encoder 20 performs bidirectional inter-prediction for a particular video block, video encoder 20 can search for a first reference block within reference images in a first list of reference images (“list 0 ”) and can search for a second reference block within reference images in a second list of reference images (“ list 1 ”). the video encoder 20 can generate, based at least in part, on the first and second reference blocks, the premeditated block for the particular video block. In addition, video encoder 20 can generate a first motion vector that indicates a spatial shift between the particular video block and the first reference block. the video encoder 20 can also generate a first reference index that identifies a location within the first reference image list of the reference image containing the first reference block. In addition, video encoder 20 can generate a second motion vector that indicates a spatial shift between the particular video block and the second reference block. video encoder 20 can also generate a second reference index that identifies a location within the second reference image list of the reference image that includes the second reference block.
[0099] [0099] When video encoder 20 performs unidirectional inter-prediction on a particular video block, video decoder 30 can use the motion information of the particular video block to identify the reference block of the particular video block. The video decoder 30 can then generate the predictive block of the particular video block based on the reference block. When the video encoder 20 performs bidirectional inter-prediction to determine a predictive block for a particular video block, the video decoder 30 can use the motion information of the particular video block to determine two reference blocks. The video decoder 30 can generate the predictive block of the private video block based on the two reference samples of the private video block. Thus, for one-way inter-prediction or two-way inter-prediction, the video encoder 20 and video decoder 30 can determine a predictive block based on a block's motion vector.
[0100] [0100] Video encoder 20 can signal motion information from a video unit in several ways. This motion information can include motion vectors, reference indices, reference image list indicators and / or other motion-related data. In some examples, video encoder 20 and video decoder 30 can use motion prediction to reduce the amount of data used to signal motion information. Motion prediction can comprise determining motion information from a video unit (for example, a PU)
[0101] [0101] In blending mode, video encoder 20 generates a list of candidates. The candidate list includes a set of candidates that indicate the movement information of one or more source video units. The source video units can spatially or temporally neighbor a current video unit. Additionally, in blending mode, video encoder 20 can select a candidate from the candidate list and can use the motion information indicated by the selected candidate as the motion information for the current video unit. The video encoder 20 can signal the position in the candidate list of the selected candidate. The video decoder 30 can determine, based on information obtained from a bit stream, the index in the candidate list. In addition, video decoder 30 can generate the same candidate list and can determine, based on the index, the selected candidate. The video decoder 30 can then use the motion information of the selected candidate to generate a predictive block for the current video unit.
[0102] [0102] The ignore mode is similar to the blending mode. In skip mode, video encoder 20 and video decoder 30 generate and use a candidate list in the same way as video encoder 20 and video decoder 30 use the candidate list in merge mode. However, when video encoder 20 signals motion information from a current video unit using skip mode, video encoder 20 does not signal any residual data to the current video unit. Accordingly, the video decoder 30 can determine, without the use of residual data, a predictive block for the video unit based on one or more reference blocks indicated by the movement information of a candidate selected from the list of candidates.
[0103] [0103] For skip mode and merge mode, a merge index is flagged to indicate which candidate in the merge candidate list is used. No inter-prediction indicator, reference index or motion vector difference is transmitted. Two or more types of merge candidates are considered in merge mode, including: spatial motion vector predictors (SMVPs) and temporal motion vector predictors (TMVPs). For SMVP derivation, a maximum of four merge candidates is selected from among candidates who are located in positions as shown in Figure 2. The derivation order is A1 → B1 → B0 → A0 → (B2). In HEVC, position B2 is considered only when any PU from position A1, B1, B0, A0 is not available or is intra-coded or the total number of candidates, after removal, from positions A1, B1, B0, A0 is less than four.
[0104] [0104] In the derivation of a TMVP, a scaled motion vector is derived based on a co-located PU that belongs to one of the reference images of a current image within a list of signaled reference images. The list of reference images used for the derivation of the co-located PU can be explicitly flagged in a slice header of the current image. The scaled motion vector for the time merge candidate can be obtained with the co-located PU scaled motion vector using the POC, tb and td distances, where tb is defined as the difference in POC between the reference image of the current image and the current image and td is defined as the difference in POC between the reference image of the co-located image and the co-located image. The index of the time merge candidate's reference image is set to zero. A practical implementation of the scheduling process is described in the preliminary HEVC specification, which is available at https://www.itu.int/rec/T-REC- H.265. For a slice B, two motion vectors, one for the reference image list 0 and the other for the reference image list 1, are obtained and combined to produce the bi-predictive merge candidate.
[0105] [0105] The position of the co-located PU is selected between two candidate positions, C and H, as shown in Figure 2. If the PU in position H is not available, is intra-coded or is outside a current CTU row (that is, a row of CTU containing the current PU), position C is used. Otherwise, the H position is used for the time merge candidate derivation.
[0106] [0106] In addition to SMVPs and TMVPs, there can be two types of synthetic merge candidates: (1) combined bi-predictive MVP and (2) zero MVP. Combined bi-predictive MVPs are generated using an SMVP and a TMVP. In HEVC, combined bi-predictive merge candidates are used only for B slices. For example, two candidates in the original merge candidate list, which have mvL0 and refldxL0 or mvL1 and refldxL1, are used to create a bi merge candidate - combined predictive. A zero MVP has one or more motion vectors with magnitudes of 0.
[0107] [0107] In the candidate selection process, duplicate candidates who have the same movement parameters as the previous candidate in the processing order can be removed from the candidate list. This process is defined as a removal process. In addition, candidates within the same merge estimation region (MER) are not considered, in order to assist in parallel merge processing. Redundant partition formats are avoided so as not to emulate a virtual 2Nx2N partition.
[0108] [0108] Between each step of generating a merge candidate in the merge candidate list, the derivation process can be interrupted if the number of merge candidates reaches MaxNumMergeCand. In HEVC and potentially in other codecs, MaxNumMergeCand is set to equal five. As the number of candidates is constant, an index of a best merge candidate can be coded using truncated unary binarization.
[0109] [0109] AMVP mode is similar to blending mode in that the video encoder 20 can generate a candidate list and can select a candidate from the candidate list. However, for each respective reference block used in determining a predictive block for a current block (ie, video unit), video encoder 20 can signal a respective motion vector difference (MVD) for the current block , a respective reference index for the current block and a respective candidate index that indicates a candidate selected from the list of candidates. An MVD for a block can indicate a difference between a motion vector of the block and a motion vector of the selected candidate. The reference index for the current block indicates a reference image from which a reference block is determined.
[0110] [0110] Additionally, when AMVP mode is used, for each respective reference block used in determining a predictive block for the current block, the video decoder 30 can determine an MVD for the current block, a reference index for the current block and candidate index and motion vector prediction flag (MVP). The video decoder 30 can generate the same candidate list and can determine, based on the candidate index, a candidate selected from the candidate list. As before, this list can include motion vectors from neighboring blocks that are associated with the same reference index, as well as a temporal motion vector predictor that is derived based on the motion parameters of the neighboring block of the co-located block in a temporal reference image. The video decoder 30 can retrieve a motion vector from the current PU by adding the MVD to the motion vector indicated by the selected AMVP candidate. That is, the video decoder 30 can determine, based on a motion vector indicated by the selected AMVP candidate and the MVD, the current PU motion vector. The video decoder 30 can then use the retrieved motion vector or motion vectors from the current PU to generate predictive blocks for the current PU.
[0111] [0111] When a video encoder (for example, video encoder 20 or video decoder 30) generates a list of AMVP candidates for a current PU, the video encoder can derive one or more AMVP candidates based on the information of movement of PUs (that is, spatially neighboring PUs), which encompass locations that are spatially neighboring to the current PU and one or more AMVP candidates based on the movement information of PUs that are temporarily neighboring the current PU. In this disclosure, it can be said that a PU (or other type of unit or video block) “covers” a location if a PU prediction block (or another type of sample unit of the video unit) includes the location. The candidate list can include motion vectors from neighboring blocks that are associated with the same reference index, as well as a temporal motion vector predictor that is derived based on the motion parameters (ie motion information) of the neighboring block of the block co-located in a temporal reference image. A candidate on a merge candidate list or an AMVP candidate list that is based on the movement information of a PU that is temporally neighboring a current PU (that is, a PU that is at a different time point than Current PU) can be referred to as a TMVP A TMVP can be used to improve the efficiency of HEVC encoding and, unlike other encoding tools, a TMVP may need to access a frame motion vector in a decoded image buffer , more specifically in a list of reference images.
[0112] [0112] For AMVP mode, an inter-prediction indicator is transmitted to denote the list 0 prediction, the list 1 prediction or the bi prediction. Then, one or two reference indexes are transmitted when there are several reference images. An index is transmitted to each prediction direction to select a movement candidate from the candidate list. As shown in Figure 2, the candidate list for inter mode includes two spatial motion candidates and one temporal motion candidate:
[0113] [0113] In HEVC, a video encoder searches for the left spatial motion candidate from left down to left (ie A0 and A1) and the video encoder selects the first available one as the left candidate. The video encoder searches for the top spatial motion candidate from right up to left above (that is, B0, B1 and B2) and the video encoder selects the first available one as the top candidate. The video encoder can select a temporal movement candidate from a block (H or C) located in a reference image, which is called a co-located temporal image. The temporal co-located image is indicated by the transmission of a flag in a slice header to specify which reference image list and a reference index in the slice header to indicate which reference image in the reference list is used as the reference image. co-located reference. In HEVC, after the index is transmitted, one or two corresponding motion vector differences (MVDs) are transmitted.
[0114] [0114] In addition, in HEVC and potentially other codecs, a fixed size of candidate list is used to decouple candidate list construction and index analysis. To compensate for the loss of encoding performance caused by the fixed list size,
[0115] [0115] In the JEM reference software, there are several inter-coding tools that derive and / or refine the motion vector (MV) for a current block on the decoder side or use a related motion model. These new inter-prediction approaches are elaborated below.
[0116] [0116] Pattern-based motion vector derivation mode (PMMVD) is a special blending mode based on upward frame rate conversion (FRUC) techniques. With PMMVD mode, a block's movement information is not signaled, but is instead derived on the decoder side. A FRUC flag is flagged for a block (for example, CU) when its merge flag is true. When the FRUC flag is false, a merge index is flagged and regular merge mode is used. When the FRUC flag is true, an additional FRUC mode flag is flagged to indicate which method (bilateral match or model match) should be used to derive motion information for the block.
[0117] [0117] On the encoder side, the decision to use FRUC blending mode for a CU can be based on the rate / distortion (RD) cost selection, as is done for normal blending candidates. That is, the two modes of correspondence (bilateral correspondence and model correspondence) can both be checked for a CU using RD cost selection. The mode that leads to the minimum cost is additionally compared to other CU modes. If a FRUC match mode is the most effective mode, the FRUC flag is set to true for CU and the related match mode is used.
[0118] [0118] The movement derivation process in FRUC blending mode includes two steps. A motion search at the CU level can be performed first, followed by a movement refinement at the sub-CU level. At the CU level, an initial motion vector (that is, an initial MV) is derived for the entire CU based on bilateral correspondence or model correspondence. First, a list of MV candidates (FRUC MV candidates) is generated and the candidate that leads to the minimum matching cost is selected as a starting point for further CU level refinement. Then, a local search is performed based on bilateral correspondence or model correspondence around the starting point and the MV that results in the minimum correspondence cost is taken as the MV for the entire CU. Subsequently, the movement information is further refined at the sub-CU level with the derived CU motion vectors as the starting points.
[0119] [0119] For example, the following derivation process can be performed for a derivation of movement information W x H CU, where W is width and H is height. In the first stage, an MV is derived for the entire W x H CU. In the second stage, CU is further divided into M x M sub-CUs. The value of M is calculated as in equation (1) below, D is a predefined division depth that is set to 3 by default in JEM. Then, the MV for each sub-CU is derived.
[0120] [0120] As shown in Figure 3, bilateral correspondence is used to derive movement information from a current CU, finding the best correspondence between two blocks along the movement path of the current CU in two different reference images. Under the assumption of continuous motion trajectory, the motion vectors MV0 and MV1 that point to the two reference blocks are proportional to the temporal distances, that is, TD0 and TD1, between the current image and the two reference images. As a special case, when the current image is temporally between the two reference images and the temporal distance from the current image to the two reference images is equal, the bilateral correspondence becomes two-way mirror-based MV.
[0121] [0121] As shown in Figure 4, model matching is used to derive movement information from the current CU, finding the best match between a model (upper and / or left neighboring blocks of the current CU) in the current image and a block (same size as the model) in a reference image. Except for the FRUC blending mode mentioned earlier, model matching is also applied to AMVP mode. In JEM, as in HEVC, AMVP has two candidates. With the model matching method, a new candidate is derived. If the newly derived candidate by model matching is different from the first existing AMVP candidate, the newly derived candidate is inserted at the beginning of the AMVP candidate list, and then the list size is set to two (which means remove the second existing AMVP candidate). When applied to AMVP mode, only a CU-level search is applied.
[0122] [0122] In a set of FRUC MV candidates at the CU level, the set of MV candidates at the CU level comprises or consists of: (i) Original AMVP candidates if the current CU is in AMVP mode (ii) all merge candidates, (iii) multiple VMs in an interpolated VM field, which are introduced elsewhere in this revelation (iv) upper and left neighboring motion vectors
[0123] [0123] Using bilateral correspondence, each valid MV of a merge candidate is used as an input to generate a pair of VMs with the assumption of bilateral correspondence. For example, a valid MV for a merge candidate is (MVa, refa) in reference list A. So the refb reference image of your paired bilateral MV is found in the other reference list B, so that refa and refb are temporarily on different sides of the current image. If such a refb is not available in reference list B, refb is determined as a reference that is different from refa and its time distance to the current image is the minimum distance in list B. After refb is determined, MVb is derived by scaling MVa based on the time distance between the current image and refa, refb.
[0124] [0124] Four VMs from the interpolated VM field can also be added to the list of candidates at the CU level. More specifically, MVs interpolated at position (0.0), (W / 2, 0), (0, H / 2) and (W / 2, H / 2) of the current CU can be added. When FRUC is applied in AMVP mode, the original AMVP candidates can also be added to the CU candidate set at the CU level. At the CU level, up to 15 MVs for AMVP CUs and up to 13 MVs for merge CUs are added to the candidate list. In this disclosure, an AMVP CU is a CU in which the movement information is predicted using an AMVP mode. Additionally, in this disclosure, a
[0125] [0125] In some examples, the MV candidate set at the sub-CU level consists of: (i) a VM determined from a CU-level survey, (ii) upper, left, upper left and neighboring VMs upper right, (iii) scaled versions of MVs co-located from reference images, (iv) up to 4 candidates for advanced temporal motion vector prediction (ATMVP), (v) up to 4 motion vector prediction candidates space-time (STMVP).
[0126] [0126] The scaled VMs of the reference images can be derived as shown below. All reference images in both lists are scanned. The VMs in a co-located position of the sub-CU in a reference image are scaled to the reference of the initial CU-level MV. That is, similar to TMVPs in HEVC, the MVs in the co-located position can be scaled according to the POC distance. ATMVP and STMVP candidates are limited to up to four ATMV and STMVP candidates. At the sub-CU level, up to 17 MVs are added to the candidate list.
[0127] [0127] As mentioned above, in a CU-level FRUC VM candidate set, the CU-level MV candidate set can include one or more VMs in an interpolated VM field. Before encoding a frame, the interpolated motion field (that is,
[0128] [0128] When a motion vector points to a fractional sample position, motion compensated interpolation may be required. Motion compensation interpolation can interpolate sample values for locations between actual samples of an image from actual samples of the image. To keep the complexity of motion-compensated interpolation low, bi-linear interpolation instead of regular 8-lead HEVC interpolation can be used for both bilateral and model matching. The calculation of the cost of correspondence is different in different stages. For example, by selecting the best candidate from the set of candidates at the CU level, the correspondence cost is the difference in absolute sum (SAD) of bilateral correspondence or model correspondence. After the initial MV is determined, the correspondence cost C can be calculated using equation (2) below: In equation (2), w is a weighting factor that is empirically defined for 4, MV and MVS indicate the Current MV and initial MV, respectively (MVX and
权利要求:
Claims (66)
[1]
1. Method for decoding video data, the method comprising: determining, using a video decoder, a motion vector of a non-adjacent block of a current image of the video data, the non-adjacent block being not adjacent to a current block of the current image; determine, by means of the video decoder, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine, by means of the video decoder, based on the MVP for the current block, a motion vector of the current block; determine, through the video decoder, a predictive block based on the motion vector of the current block; and reconstruct, using the video decoder, based on the predictive block, sample values of the current image.
[2]
2. Method, according to claim 1, in which the determination of the MVP for the current block comprises: generating, by means of the video decoder, based, in part, on the motion vector of the non-adjacent block, a list of motion vector predictor (MVP) candidates, where the list of MVP candidates includes an MVP candidate that specifies the motion vector of the non-adjacent block; and determine, through the video decoder, among the MVP candidates on the MVP candidate list, the MVP for the current block.
[3]
3. Method, according to claim 2, in which the non-adjacent block is a first non-adjacent block, the method further comprising: sorting, through the video decoder, a plurality of non-adjacent spatial MVP candidates ( NA-SMVP) in the list, where, for each respective NA-SMVP candidate of the plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block out of a plurality of non-adjacent blocks, being that the respective NA-SMVP specifies a motion vector of the respective non-adjacent block, where the plurality of non-adjacent blocks includes the first non-adjacent block, and where the plurality of NA-SMVP candidates is ordered in the list according to the distance of corresponding non-adjacent blocks from the current block.
[4]
4. Method according to claim 2, wherein the non-adjacent block is a first non-adjacent block, the method further comprising: determining, by means of the video decoder, a first plurality of non-adjacent spatial MVP candidates (NA-SMVP), in which, for each respective NA-SMVP candidate of the first plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block out of a plurality of non-adjacent blocks, being that the respective NA-SMVP specifies the motion vector of the respective non-adjacent block, wherein the first plurality of non-adjacent blocks includes the first non-adjacent block; and ordering, via the video decoder, a second plurality of non-adjacent spatial MVP candidates (NA-SMVP) in the list, the second plurality of NA-SMVP candidates comprising NA-SMVP candidates not duplicated in the first plurality of NA-SMVP candidates, where the second plurality of NA-SMVP candidates is ordered in the list according to a frequency with which motion vectors specified by NA-SMVP candidates in the second plurality of NA-SMVP candidates are specified by NA-SMVP candidates in the first plurality of NA-SMVP candidates.
[5]
A method according to claim 2, which further comprises applying, by means of the video decoder, a removal process to the list, wherein the removal process is adaptable to a block size of the current block.
[6]
6. Method, according to claim 1, in which the MVP for the current block is in the affine mode.
[7]
7. Method according to claim 1, in which the determination of the motion vector of the current block comprises: determining, by means of the video decoder, the motion vector of the current block so that the motion vector of the current block specify an MVP motion vector for the current block.
[8]
8. Method according to claim 1, in which the determination of the motion vector of the current block comprises:
determine, using the video decoder, the motion vector of the current block so that the motion vector of the current block is equal to a motion vector of MVP motion information for the current block plus a difference of motion vector (MVD).
[9]
9. Method according to claim 1, wherein the non-adjacent block is a block in a model that defines a fixed pattern of blocks in relation to a position of the current block.
[10]
10. Method according to claim 1, which further comprises: determining, using the video decoder, a list of global motion vector candidates comprising MVP candidates that specify a motion vector for each block that is in the current image and that is decoded before the current block; and determining, using the video decoder, the motion vector of the non-adjacent block from an MVP candidate in the global motion vector candidate list.
[11]
11. Method according to claim 1, which further comprises: storing, by means of the video decoder, a plurality of non-adjacent MVP candidates in a first-in, first-out (PEPS) temporary storage, in which the plurality of non-adjacent MVP candidates includes a non-adjacent MVP candidate that specifies the motion vector of the non-adjacent block; and updating, via the video decoder, the PEPS buffer to remove a non-adjacent MVP candidate added earlier from the PEPS buffer and adding an MVP candidate to the PEPS buffer.
[12]
12. Method according to claim 1, which further comprises: determining, by means of the video decoder, a set of frame rate upward motion (FRUC) candidate vectors of encoding unit level (CU ); selecting, through the video decoder, a CU level FRUC motion vector candidate from the CU level FRUC motion vector candidate set; determine, by means of the video decoder, a CU level motion vector at least in part by conducting a local survey that starts from a selected CU level FRUC motion vector candidate; and refine, through the video decoder, the CU-level motion vector at a sub-CU level with a set of sub-CU-level FRUC motion vector candidates, where at least one of the CU-level FRUC motion vector candidate set and the sub-CU level FRUC motion vector candidate set includes a non-adjacent spatial motion vector (NA-SMVP) predictor that specifies the vector of non-adjacent block movement.
[13]
13. Method according to claim 1, which further comprises: before determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and the current block that is greater than a threshold distance, modify a position of the non-adjacent block.
[14]
A method according to claim 13, wherein modifying the position of the non-adjacent block comprises rounding a position of the non-adjacent block to a position in a first grid of blocks in the current image thicker than a second grid of blocks in the current image.
[15]
A method according to claim 13, wherein modifying the position of the non-adjacent block comprises cutting a position of the non-adjacent block up to the distance threshold.
[16]
16. Method according to claim 1, which further comprises: before determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and a current tree coding block that is greater than a threshold distance, modify a position of the non-adjacent block, the current tree coding block containing the current block.
[17]
17. Method for encoding video data, the method comprising: determining, by means of a video encoder, a motion vector of a non-adjacent block of a current image of the video data, the non-adjacent block being not adjacent to a current block of the current image; determine, by means of the video encoder, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine, using the video encoder, a motion vector for the current block, where the motion vector is equal to a MVP motion vector for the current block or is equal to the MVP motion vector for the current block plus a motion vector difference (MVD) signaled in a bit stream; determine, through the video encoder, a predictive block based on the motion vector of the current block; and generate, through the video encoder, based on the predictive block, residual sample values.
[18]
18. Method, according to claim 17, in which the determination of the MVP for the current block comprises: generating, by means of the video encoder, based, in part, on the motion vector of the non-adjacent block, a list of motion vector predictor (MVP) candidates, where the list of MVP candidates includes an MVP candidate that specifies the motion vector of the non-adjacent block; and determine, through the video encoder, among the MVP candidates on the MVP candidate list, the MVP for the current block.
[19]
19. The method of claim 18, wherein the non-adjacent block is a first non-adjacent block, the method further comprising: sorting, by means of the video encoder, a plurality of non-adjacent spatial MVP candidates ( NA-SMVP) in the list,
where, for each respective NA-SMVP candidate from the plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block out of a plurality of non-adjacent blocks, the respective NA-SMVP specifying a motion vector of the respective non-adjacent block, in which the plurality of non-adjacent blocks includes the first non-adjacent block, and in which the plurality of NA-SMVP candidates is ordered in the list according to the distance of corresponding non-adjacent blocks from the current block.
[20]
20. Method according to claim 18, wherein the non-adjacent block is a first non-adjacent block, the method further comprising: determining, by means of the video encoder, a first plurality of non-adjacent spatial MVP candidates (NA-SMVP), in which, for each respective NA-SMVP candidate of the first plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block out of a plurality of non-adjacent blocks, being that the respective NA-SMVP specifies a motion vector of the respective non-adjacent block, wherein the first plurality of non-adjacent blocks includes the first non-adjacent block; and include, via the video encoder, a second plurality of non-adjacent spatial MVP candidates (NA-SMVP) in the list, the second plurality of NA-SMVP candidates comprising NA-SMVP candidates not duplicated in the first plurality of NA-SMVP candidates, where the second plurality of NA-SMVP candidates is ordered in the list according to a frequency with which motion vectors specified by NA-SMVP candidates in the second plurality of NA-SMVP candidates are specified by NA-SMVP candidates in the first plurality of NA-SMVP candidates.
[21]
21. The method of claim 18, which further comprises applying, by means of the video encoder, a removal process to the list, wherein the removal process is adaptable to a block size of the current block.
[22]
22. Method according to claim 17, wherein the MVP for the current block is in the affine mode.
[23]
23. The method of claim 17, wherein the non-adjacent block is a block in a model that defines a fixed pattern of blocks with respect to a position of the current block.
[24]
24. Method, according to claim 17, which further comprises: determining, by means of the video encoder, a list of global motion vector candidates comprising MVP candidates that specify a motion vector for each block that is in the current image and that is encoded before the current block; and determining, using the video encoder, the motion vector of the non-adjacent block from an MVP candidate in the global motion vector candidate list.
[25]
25. The method of claim 17, which further comprises: storing, by means of the video encoder, a plurality of non-adjacent MVP candidates in a first-in, first-out (PEPS) temporary storage, in which the plurality of non-adjacent MVP candidates includes a non-adjacent MVP candidate that specifies the motion vector of the non-adjacent block; and updating, via the video encoder, the PEPS buffer to remove a non-adjacent MVP candidate added earlier from the PEPS buffer and adding an MVP candidate to the PEPS buffer.
[26]
26. The method of claim 17, further comprising: determining, by means of the video encoder, a set of encoding unit level (CUUC) upward conversion rate (FRUC) motion vector candidates. ); selecting, through the video encoder, a CU level FRUC motion vector candidate from the CU level FRUC motion vector candidate set; determine, by means of the video encoder, a CU level motion vector at least in part by conducting a local survey that starts from a selected CU level FRUC motion vector candidate; and refine, through the video encoder, the CU-level motion vector at a sub-CU level with a set of sub-CU-level FRUC motion vector candidates, where at least one of the CU-level FRUC motion vector candidate set and the sub-CU level FRUC motion vector candidate set includes a non-adjacent spatial motion vector (NA-SMVP) predictor that specifies the vector of non-adjacent block movement.
[27]
27. The method of claim 17, which further comprises: before determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and the current block that is greater than a threshold distance, modify a position of the non-adjacent block.
[28]
28. The method of claim 27, wherein modifying the position of the non-adjacent block comprises rounding a position of the non-adjacent block to a position in a first grid of blocks in the current image thicker than a second grid of blocks in the current image.
[29]
29. The method of claim 27, wherein changing the position of the non-adjacent block comprises cutting a position of the non-adjacent block up to the distance threshold.
[30]
30. The method of claim 17, further comprising: before determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and a current tree coding block that is greater than a threshold distance, modify a position of the non-adjacent block, the current tree coding block containing the current block.
[31]
31. Device for decoding video data, the device comprising: one or more storage media configured to store video data; and one or more processors configured to: determine a motion vector of a non-adjacent block of a current image of the video data, the non-adjacent block being non-adjacent to a current block of the current image; determine, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine, based on the MVP for the current block, a motion vector of the current block; determine a predictive block based on the movement vector of the current block; and reconstruct, based on the predictive block, sample values from the current image.
[32]
32. Apparatus according to claim 31, in which the one or more processors are configured so that, as part of the determination of the MVP for the current block, the one or more processors: manage, based, in part, on the motion vector of the non-adjacent block, a list of motion vector predictor (MVP) candidates, where the list of MVP candidates includes an MVP candidate that specifies the motion vector of the non-adjacent block; and determine, among the MVP candidates on the MVP candidate list, the MVP for the current block.
[33]
33. Apparatus according to claim 32, wherein the non-adjacent block is a first non-adjacent block, the one or more processors are additionally configured to: order a plurality of non-adjacent spatial MVP candidates (NA-SMVP) in list, in which, for each respective NA-SMVP candidate of the plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block out of a plurality of non-adjacent blocks, with the respective NA- SMVP specifies a motion vector for the respective non-adjacent block, where the plurality of non-adjacent blocks includes the first non-adjacent block, and where the plurality of NA-SMVP candidates is ordered in the list according to the distance of non-adjacent blocks. corresponding adjacent blocks from the current block.
[34]
34. Apparatus according to claim 32, wherein the non-adjacent block is a first non-adjacent block, the one or more processors are additionally configured to: determine a first plurality of non-adjacent spatial MVP candidates (NA-SMVP) , in which, for each respective NA-SMVP candidate of the first plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block of a plurality of non-adjacent blocks, with the respective NA- SMVP specifies the motion vector of the respective non-adjacent block, wherein the first plurality of non-adjacent blocks includes the first non-adjacent block; and ordering a second plurality of non-adjacent spatial MVP candidates (NA-SMVP) in the list, the second plurality of NA-SMVP candidates comprising NA-SMVP candidates not duplicated in the first plurality of NA-SMVP candidates, in that the second plurality of NA-SMVP candidates is ordered in the list according to a frequency with which the motion vector specified by NA-SMVP candidates in the second plurality of NA-SMVP candidates is specified by NA-SMVP candidates in the first plurality of NA-SMVP candidates.
[35]
35. Apparatus according to claim 32, wherein the one or more processors are additionally configured to apply a removal process to the list, wherein the removal process is adaptable to a block size of the current block.
[36]
36. Apparatus according to claim 31, in which the MVP for the current block is in the affine mode.
[37]
37. Apparatus according to claim 31, wherein the one or more processors are configured so that, as part of determining the motion vector of the current block, the one or more processors: determining the motion vector of the current block so that the motion vector of the current block specifies a motion vector of the MVP candidate for the current block.
[38]
38. Apparatus according to claim 31, wherein the one or more processors are configured so that, as part of determining the motion vector of the current block, the one or more processors:
determine the motion vector of the current block so that the motion vector of the current block is equal to a motion vector of motion information from the MVP to the current block.
[39]
39. Apparatus according to claim 31, wherein the non-adjacent block is a block in a model that defines a fixed pattern of blocks in relation to a position of the current block.
[40]
40. Apparatus according to claim 31, wherein the one or more processors are additionally configured to: determine a global motion vector candidate list comprising MVP candidates to specify a motion vector for each block in the image current and that is decoded before the current block; and determining the motion vector of the nonadjacent block from an MVP candidate in the global motion vector candidate list.
[41]
41. Apparatus according to claim 31, wherein the one or more processors are additionally configured to: store a plurality of non-adjacent MVP candidates in a first-in, first-out (PEPS) temporary storage, in which the plurality of non-adjacent MVP candidates includes a non-adjacent MVP candidate that specifies the motion vector of the non-adjacent block; and updating the PEPS buffer to remove a nonadjacent MVP candidate added earlier from the PEPS buffer and adding an MVP candidate to the PEPS buffer.
[42]
42. An apparatus according to claim 31, wherein the one or more processors are additionally configured to: determine a set of encoding unit level (CUUC) upward conversion rate (FRUC) motion vector candidates. ); selecting a CU level FRUC motion vector candidate from the CU level FRUC motion vector candidate set; determining a CU level motion vector at least in part by conducting a local survey starting from a selected CU level FRUC motion vector candidate; and refine the CU-level motion vector at a sub-CU level with a set of sub-CU-level FRUC motion vector candidates, where at least one of the CU-level FRUC and the sub-CU-level FRUC motion vector candidate set includes a non-adjacent spatial motion vector predictor (NA-SMVP) that specifies the non-adjacent block motion vector.
[43]
43. Apparatus according to claim 31, wherein the one or more processors are configured for: before determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and the current block that is greater than a threshold distance, modify a non-adjacent block position.
[44]
44. Apparatus according to claim 43, wherein the one or more processors are configured so that, as part of modifying the position of the non-adjacent block, the one or more processors round a position of the non-adjacent block to a position in a first grid of blocks in the current image thicker than a second grid of blocks in the current image.
[45]
45. Apparatus according to claim 43, wherein the one or more processors are configured so that, as part of changing the position of the non-adjacent block, the one or more processors cut a position of the non-adjacent block up to the threshold from distance.
[46]
46. Apparatus according to claim 31, wherein the one or more processors are configured for: before determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and a coding block in current tree that is greater than a threshold distance, modify a position of the non-adjacent block, and the current tree coding block contains the current block.
[47]
47. Apparatus according to claim 31, wherein the apparatus comprises: an integrated circuit, a microprocessor, or a wireless communication device.
[48]
48. Device for encoding video data, the device comprising: one or more storage media configured to store video data; and one or more processors configured to:
determining a motion vector of a non-adjacent block of a current image of the video data, the non-adjacent block being non-adjacent to a current block of the current image; determine, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine a motion vector of the current block, where the motion vector is equal to an MVP motion vector for the current block or is equal to the MVP motion vector for the current block plus a motion vector difference (MVD ) signaled in a bit stream; determine a predictive block based on the movement vector of the current block; and generate, based on the predictive block, residual sample values.
[49]
49. Apparatus according to claim 48, in which the one or more processors are configured so that, as part of the determination of the MVP for the current block, the one or more processors: manage, based, in part, on the motion vector of the non-adjacent block, a list of motion vector predictor (MVP) candidates, where the list of MVP candidates includes an MVP candidate that specifies the motion vector of the non-adjacent block; and determine, among the MVP candidates on the MVP candidate list, the MVP for the current block.
[50]
50. Apparatus according to claim 49, wherein the non-adjacent block is a first non-adjacent block, the one or more processors are additionally configured to: order a plurality of non-adjacent spatial MVP candidates (NA-SMVP) in list, in which, for each respective NA-SMVP candidate of the plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block out of a plurality of non-adjacent blocks, with the respective NA- SMVP specifies a motion vector for the respective non-adjacent block, where the plurality of non-adjacent blocks includes the first non-adjacent block, and where the plurality of NA-SMVP candidates is ordered in the list according to the distance of non-adjacent blocks. corresponding adjacent blocks from the current block.
[51]
51. Apparatus according to claim 50, wherein the non-adjacent block is a first non-adjacent block, the one or more processors are additionally configured to: determine a first plurality of non-adjacent spatial MVP candidates (NA-SMVP) , in which, for each respective NA-SMVP candidate of the first plurality of NA-SMVP candidates, the respective NA-SMVP candidate corresponds to a respective non-adjacent block of a plurality of non-adjacent blocks, with the respective NA- SMVP specifies a motion vector for the respective non-adjacent block, wherein the first plurality of non-adjacent blocks includes the first non-adjacent block; and include a second plurality of non-adjacent spatial MVP candidates (NA-SMVP) in the list, with the second plurality of NA-SMVP candidates comprising NA-SMVP candidates not duplicated in the first plurality of NA-SMVP candidates, in whereas the second plurality of NA-SMVP candidates is ordered in the list according to a frequency with which motion vectors specified by NA-SMVP candidates in the second plurality of NA-SMVP candidates are specified by NA-SMVP candidates in first plurality of NA-SMVP candidates.
[52]
52. Apparatus according to claim 49, wherein the one or more processors are additionally configured to apply a removal process to the list, wherein the removal process is adaptable to a block size of the current block.
[53]
53. Apparatus according to claim 48, in which the MVP for the current block is in the affine mode.
[54]
54. Apparatus according to claim 48, wherein the non-adjacent block is a block in a model that defines a fixed pattern of blocks in relation to a position of the current block.
[55]
55. Apparatus according to claim 48, wherein the one or more processors are additionally configured to: determine a list of global motion vector candidates comprising MVP candidates to specify a motion vector for each block that is in the image current and that is encoded before the current block; and determining the motion vector of the nonadjacent block from an MVP candidate in the global motion vector candidate list.
[56]
56. Apparatus according to claim 48, wherein the one or more processors are additionally configured to: store a plurality of non-adjacent MVP candidates in a first-in, first-out (PEPS) temporary storage, in which the plurality of non-adjacent MVP candidates includes a non-adjacent MVP candidate that specifies the motion vector of the non-adjacent block; and updating the PEPS buffer to remove a nonadjacent MVP candidate added earlier from the PEPS buffer and adding an MVP candidate to the PEPS buffer.
[57]
57. Apparatus according to claim 48, wherein the one or more processors are additionally configured to: determine a set of encoding unit level (CUUC) upstream frame rate (FRUC) motion vector candidates ); selecting a CU level FRUC motion vector candidate from the CU level FRUC motion vector candidate set; determining a CU level motion vector at least in part by conducting a local survey starting from a selected CU level FRUC motion vector candidate; and refine the CU-level motion vector at a sub-CU level with a set of sub-CU-level FRUC motion vector candidates,
where at least one of the set of CU-level FRUC motion vector candidates and the set of sub-CU level FRUC motion vector candidates includes a nonadjacent spatial motion vector predictor (NA- SMVP) that specifies the motion vector of the non-adjacent block.
[58]
58. Apparatus according to claim 48, wherein the one or more processors are configured for: before determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and the current block that is greater than a threshold distance, modify a non-adjacent block position.
[59]
59. Apparatus according to claim 58, wherein the one or more processors are configured so that, as part of modifying the position of the non-adjacent block, the one or more processors rounds a position of the non-adjacent block to a position in a first grid of blocks in the current image thicker than a second grid of blocks in the current image.
[60]
60. Apparatus according to claim 58, wherein the one or more processors are configured so that, as part of modifying the position of the non-adjacent block, the one or more processors cut a position of the non-adjacent block up to the threshold from distance.
[61]
61. Apparatus according to claim 48, wherein the one or more processors are configured for: before determining the motion vector of the non-adjacent block and based on a distance between the non-adjacent block and a coding block in current tree that is greater than a threshold distance, modify a position of the non-adjacent block, and the current tree coding block contains the current block.
[62]
62. Apparatus according to claim 48, wherein the apparatus comprises: an integrated circuit, a microprocessor, or a wireless communication device.
[63]
63. Apparatus for decoding video data, the apparatus comprising: means for determining a motion vector of a non-adjacent block of a current image of the video data, the non-adjacent block being non-adjacent to a current block of the current image; means for determining, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; means for determining, based on the MVP for the current block, a motion vector for the current block; means for determining a predictive block based on the motion vector of the current block; and means to reconstruct, based on the predictive block, sample values from the current image.
[64]
64. Apparatus for encoding video data, the apparatus comprising: means for determining a motion vector of a non-adjacent block of a current image of the video data, the non-adjacent block being non-adjacent to a current block of the current image; means for determining, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block;
means for determining a motion vector of the current block, where the motion vector is equal to an MVP motion vector for the current block or is equal to the MVP motion vector for the current block plus a motion vector difference (MVD) signaled in a bit stream; means for determining a predictive block based on the motion vector of the current block; and means to generate, based on the predictive block, residual sample values.
[65]
65. Computer-readable storage media that stores instructions that, when executed, cause one or more processors: to determine a motion vector of a non-adjacent block of a current image of the video data, the non-adjacent block being not adjacent to a current block of the current image; determine, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine, based on the MVP for the current block, a motion vector of the current block; determine a predictive block based on the movement vector of the current block; and reconstruct, based on the predictive block, sample values from the current image.
[66]
66. Computer-readable storage media that stores instructions that, when executed, cause one or more processors: to determine a motion vector of a non-adjacent block of a current image of the video data, the non-adjacent block being not adjacent to a current block of the current image; determine, based on the motion vector of the non-adjacent block, a motion vector predictor (MVP) for the current block; determine a motion vector of the current block, where the motion vector is equal to an MVP motion vector for the current block or is equal to the MVP motion vector for the current block plus a motion vector difference (MVD ) signaled in a bit stream; determine a predictive block based on the movement vector of the current block; and generate, based on the predictive block, residual sample values.
类似技术:
公开号 | 公开日 | 专利标题
BR112019025566A2|2020-06-23|MOTION VECTOR PREDICTION
KR102147614B1|2020-08-24|Motion Vector Prediction for Affine Motion Models in Video Coding
BR112020006875A2|2020-10-06|low complexity project for fruc
BR112020024142A2|2021-03-02|method for video processing, apparatus for encoding video data, non-transitory computer-readable storage medium and recording medium
BR112020016133A2|2020-12-08|INTRA-BLOCK COPY FOR VIDEO ENCODING
BR112020024202A2|2021-02-17|method of processing video data, video processing apparatus and non-transitory computer-readable storage and recording media
BR112021005357A2|2021-06-15|improvements to history-based motion vector predictor
BR112020006588A2|2020-10-06|affine prediction in video encoding
WO2018175911A1|2018-09-27|Motion vector difference | prediction
WO2019147826A1|2019-08-01|Advanced motion vector prediction speedups for video coding
BR112021009558A2|2021-08-17|simplification of history-based motion vector prediction
US20210377545A1|2021-12-02|Interaction between lut and shared merge list
US20210120234A1|2021-04-22|Selection of coded motion information for lut updating
WO2020003282A1|2020-01-02|Managing motion vector predictors for video coding
BR112020024162A2|2021-03-02|video processing method and apparatus for processing video data, non-transitory computer-readable storage and recording media, method for storing a bit stream representation of a video
BR112019027821A2|2020-07-07|template pairing based on partial reconstruction for motion vector derivation
BR112021002967A2|2021-05-11|affine motion prediction
BR112020014522A2|2020-12-08|IMPROVED DERIVATION OF MOTION VECTOR ON THE DECODER SIDE
WO2019136131A1|2019-07-11|Generated affine motion vectors
WO2020016744A1|2020-01-23|Extension of look-up table based motion vector prediction with temporal information
BR112021009732A2|2021-08-17|spatiotemporal motion vector prediction patterns for video encoding
CN113273186A|2021-08-17|Invocation of LUT update
WO2020008322A1|2020-01-09|Complexity reduction of non-adjacent merge design
BR112020025982A2|2021-03-23|subpredictable unit movement vector predictor signaling
TWI738081B|2021-09-01|Methods and apparatuses of combining multiple predictors for block prediction in video coding systems
同族专利:
公开号 | 公开日
US20200221116A1|2020-07-09|
US20180359483A1|2018-12-13|
AU2018283967A1|2019-12-05|
JP2020523853A|2020-08-06|
US10602180B2|2020-03-24|
US11218723B2|2022-01-04|
CN110754086A|2020-02-04|
CA3063173A1|2018-12-20|
US20220070486A1|2022-03-03|
KR20200017406A|2020-02-18|
TW201904299A|2019-01-16|
EP3639519A1|2020-04-22|
CL2019003677A1|2020-07-10|
CO2019013930A2|2020-01-17|
WO2018231700A1|2018-12-20|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US6925123B2|2002-08-06|2005-08-02|Motorola, Inc.|Method and apparatus for performing high quality fast predictive motion search|
KR101279573B1|2008-10-31|2013-06-27|에스케이텔레콤 주식회사|Motion Vector Encoding/Decoding Method and Apparatus and Video Encoding/Decoding Method and Apparatus|
EP2532159A1|2010-02-05|2012-12-12|Telefonaktiebolaget L M Ericsson |Selecting predicted motion vector candidates|
KR101742449B1|2011-03-08|2017-05-31|가부시키가이샤 제이브이씨 켄우드|Video encoding device, video encoding method, video encoding program, video decoding device, video decoding method, and video decoding program|
CN107948657B|2011-03-21|2021-05-04|Lg 电子株式会社|Method of selecting motion vector predictor and apparatus using the same|
AU2011379313A1|2011-10-21|2014-05-22|Nokia Technologies Oy|Method for video coding and an apparatus|
US9571833B2|2011-11-04|2017-02-14|Nokia Technologies Oy|Method for coding and an apparatus|
TWI600315B|2011-12-28|2017-09-21|Jvc Kenwood Corp|Dynamic image decoding device, dynamic image decoding method, and recording medium recorded with dynamic image decoding program|
US20130343459A1|2012-06-22|2013-12-26|Nokia Corporation|Method and apparatus for video coding|
EP2892235B1|2012-09-03|2020-07-22|Sony Corporation|Image processing device and method|
US9270999B2|2013-09-25|2016-02-23|Apple Inc.|Delayed chroma processing in block processing pipelines|
CN108141604A|2015-06-05|2018-06-08|英迪股份有限公司|Image coding and decoding method and image decoding apparatus|
KR20180081716A|2015-11-13|2018-07-17|엘지전자 주식회사|Adaptive Image Prediction Method and Apparatus Using Threshold in Image Coding System|
WO2017147765A1|2016-03-01|2017-09-08|Mediatek Inc.|Methods for affine motion compensation|
US20180109814A1|2016-10-14|2018-04-19|Mediatek Inc.|Method And Apparatus Of Coding Unit Information Inheritance|
US10602180B2|2017-06-13|2020-03-24|Qualcomm Incorporated|Motion vector prediction|
US20200383104A1|2017-12-01|2020-12-03|Ntt Docomo, Inc.|User terminal and radio communication method|CN110574377B|2017-05-10|2021-12-28|联发科技股份有限公司|Method and apparatus for reordering motion vector prediction candidate set for video coding|
US10602180B2|2017-06-13|2020-03-24|Qualcomm Incorporated|Motion vector prediction|
US11252464B2|2017-06-14|2022-02-15|Mellanox Technologies, Ltd.|Regrouping of video data in host memory|
US11265569B2|2017-11-09|2022-03-01|Samsung Electronics Co., Ltd.|Apparatus and method for encoding motion information, and decoding apparatus and method|
KR20200066737A|2017-11-30|2020-06-10|엘지전자 주식회사|Video decoding method and apparatus according to inter prediction in video coding system|
US20190238883A1|2018-01-26|2019-08-01|Mediatek Inc.|Hardware Friendly Constrained Motion Vector Refinement|
US10812810B2|2018-02-06|2020-10-20|Tencent America LLC|Method and apparatus for video coding in merge mode|
WO2019204234A1|2018-04-15|2019-10-24|Arris Enterprises Llc|Unequal weight planar motion vector derivation|
WO2019204386A1|2018-04-20|2019-10-24|Huawei Technologies Co., Ltd.|Line buffer for spatial motion vector predictor candidates|
US10462486B1|2018-05-07|2019-10-29|Tencent America, Llc|Fast method for implementing discrete sine transform type VII |
US10798407B2|2018-06-01|2020-10-06|Tencent America LLC|Methods and apparatus for inter prediction with a reduced above line buffer in video coding|
WO2019234671A1|2018-06-07|2019-12-12|Beijing Bytedance Network Technology Co., Ltd.|Improved pmmvd|
CN114125450A|2018-06-29|2022-03-01|北京字节跳动网络技术有限公司|Method, apparatus and computer readable medium for processing video data|
GB2588528A|2018-06-29|2021-04-28|Beijing Bytedance Network Tech Co Ltd|Selection of coded motion information for LUT updating|
US10687081B2|2018-06-29|2020-06-16|Tencent America LLC|Method, apparatus and medium for decoding or encoding|
US10666981B2|2018-06-29|2020-05-26|Tencent America LLC|Method, apparatus and medium for decoding or encoding|
WO2020003282A1|2018-06-29|2020-01-02|Beijing Bytedance Network Technology Co., Ltd.|Managing motion vector predictors for video coding|
TW202015409A|2018-06-29|2020-04-16|財團法人工業技術研究院|Video data decoding method, video data decoder, video data encoding method and video data encoder|
EP3794824A1|2018-06-29|2021-03-24|Beijing Bytedance Network Technology Co. Ltd.|Conditions for updating luts|
CN110662064A|2018-06-29|2020-01-07|北京字节跳动网络技术有限公司|Checking order of motion candidates in LUT|
JP2021530936A|2018-06-29|2021-11-11|北京字節跳動網絡技術有限公司Beijing Bytedance Network Technology Co., Ltd.|Look-up table updates: FIFO, restricted FIFO|
TWI719524B|2018-07-01|2021-02-21|大陸商北京字節跳動網絡技術有限公司|Complexity reduction of non-adjacent merge design|
TWI725463B|2018-07-01|2021-04-21|大陸商北京字節跳動網絡技術有限公司|Spatial motion compression|
US10531090B1|2018-07-02|2020-01-07|Tencent America LLC|Method and apparatus for video coding|
CN110876282A|2018-07-02|2020-03-10|华为技术有限公司|Motion vector prediction method and related device|
TWI735902B|2018-07-02|2021-08-11|大陸商北京字節跳動網絡技術有限公司|Lookup table with intra frame prediction and intra frame predication from non adjacent blocks|
US10638153B2|2018-07-02|2020-04-28|Tencent America LLC|For decoder side MV derivation and refinement|
WO2020007362A1|2018-07-06|2020-01-09|Mediatek Inc.|Inherited motion information for decoding a current coding unit in a video coding system|
US20200014945A1|2018-07-08|2020-01-09|Mellanox Technologies, Ltd.|Application acceleration|
US20200014918A1|2018-07-08|2020-01-09|Mellanox Technologies, Ltd.|Application accelerator|
US20200021839A1|2018-07-10|2020-01-16|Qualcomm Incorporated|MULTIPLE HISTORY BASED NON-ADJACENT MVPs FOR WAVEFRONT PROCESSING OF VIDEO CODING|
US10462488B1|2018-07-13|2019-10-29|Tencent America LLC|Method and apparatus for video coding|
US10805624B2|2018-07-16|2020-10-13|Tencent America LLC|Determination of parameters of an affine model|
CN112514394A|2018-07-17|2021-03-16|松下电器(美国)知识产权公司|System and method for video encoding|
US10362330B1|2018-07-30|2019-07-23|Tencent America LLC|Combining history-based motion vector prediction and non-adjacent merge prediction|
US10827195B2|2018-08-03|2020-11-03|Tencent America LLC|Method and apparatus for unifying adjacent merge candidates and non-adjacent merge candidates|
US10924731B2|2018-08-28|2021-02-16|Tencent America LLC|Complexity constraints on merge candidates list construction|
KR20210002663A|2018-09-03|2021-01-08|후아웨이 테크놀러지 컴퍼니 리미티드|Method and apparatus for intra prediction|
WO2020050695A1|2018-09-06|2020-03-12|엘지전자 주식회사|Motion prediction-based image decoding method and apparatus using merge candidate list in image coding system|
TW202025760A|2018-09-12|2020-07-01|大陸商北京字節跳動網絡技術有限公司|How many hmvp candidates to be checked|
US20200092576A1|2018-09-14|2020-03-19|Google Llc|Motion prediction coding with coframe motion vectors|
JP2022500909A|2018-09-19|2022-01-04|北京字節跳動網絡技術有限公司Beijing Bytedance Network Technology Co., Ltd.|Use of syntax for affine mode with adaptive motion vector resolution|
EP3854096A1|2018-09-21|2021-07-28|VID SCALE, Inc.|Affine motion estimation for affine model-based video coding|
US11070796B2|2018-09-28|2021-07-20|Qualcomm Incorporated|Ultimate motion vector expression based pruning for video coding|
CN111357294A|2018-10-23|2020-06-30|北京字节跳动网络技术有限公司|Simplified entropy coding of sub-block based motion information lists|
KR20210089132A|2018-11-06|2021-07-15|베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드|Intra prediction based on location|
US11212521B2|2018-11-07|2021-12-28|Avago Technologies International Sales Pte. Limited|Control of memory bandwidth consumption of affine mode in versatile video coding|
JP2022507131A|2018-11-13|2022-01-18|北京字節跳動網絡技術有限公司|Build history-based movement candidate list for intra-block copy|
WO2020103943A1|2018-11-22|2020-05-28|Beijing Bytedance Network Technology Co., Ltd.|Using collocated blocks in sub-block temporal motion vector prediction mode|
US11146810B2|2018-11-27|2021-10-12|Qualcomm Incorporated|Decoder-side motion vector refinement|
AU2019391197A1|2018-12-07|2021-06-17|Beijing Bytedance Network Technology Co., Ltd.|Context-based intra prediction|
CA3124076A1|2018-12-28|2020-07-02|Jvckenwood Corporation|Picture decoding device, picture decoding method, and picture decoding program|
WO2020140908A1|2018-12-31|2020-07-09|Beijing Bytedance Network Technology Co., Ltd.|Mapping between distance index and distance in merge with mvd|
WO2020141123A1|2019-01-01|2020-07-09|Telefonaktiebolaget Lm Ericsson |History-based intra most probable mode derivation|
WO2020141935A1|2019-01-03|2020-07-09|엘지전자 주식회사|Device and method for processing video signal on basis of inter prediction|
KR20200085678A|2019-01-07|2020-07-15|한국전자통신연구원|Motion information prediction method and apparatus for distortion due to projection formation conversion|
US11025935B2|2019-01-10|2021-06-01|Tencent America LLC|Method and apparatus for history based motion information buffer update with parallel processing capability|
US11153590B2|2019-01-11|2021-10-19|Tencent America LLC|Method and apparatus for video coding|
US10904550B2|2019-01-12|2021-01-26|Tencent America LLC|Method and apparatus for video coding|
CN113383554A|2019-01-13|2021-09-10|北京字节跳动网络技术有限公司|Interaction between LUTs and shared Merge lists|
EP3895429A1|2019-01-31|2021-10-20|Beijing Bytedance Network Technology Co., Ltd.|Context for coding affine mode adaptive motion vector resolution|
EP3903482A1|2019-02-22|2021-11-03|Beijing Bytedance Network Technology Co. Ltd.|Neighbouring sample selection for intra prediction|
EP3903493A1|2019-02-24|2021-11-03|Beijing Bytedance Network Technology Co. Ltd.|Parameter derivation for intra prediction|
WO2020171670A1|2019-02-24|2020-08-27|엘지전자 주식회사|Method and apparatus for processing video signal for inter prediction|
WO2020173477A1|2019-02-27|2020-09-03|Beijing Bytedance Network Technology Co., Ltd.|Regression-based motion vector field based sub-block motion vector derivation|
US11190797B2|2019-03-01|2021-11-30|Qualcomm Incorporated|Constraints on decoder-side motion vector refinement based on weights for bi-predicted prediction|
US11166015B2|2019-03-06|2021-11-02|Tencent America LLC|Method and apparatus for video coding|
WO2020184958A1|2019-03-11|2020-09-17|엘지전자 주식회사|Method and device for processing video signal for inter prediction|
KR20210114060A|2019-03-13|2021-09-17|엘지전자 주식회사|DMVR-based inter prediction method and device|
US10979716B2|2019-03-15|2021-04-13|Tencent America LLC|Methods of accessing affine history-based motion vector predictor buffer|
US11140409B2|2019-03-22|2021-10-05|Lg Electronics Inc.|DMVR and BDOF based inter prediction method and apparatus thereof|
KR20200115456A|2019-03-22|2020-10-07|엘지전자 주식회사|DMVR and BDOF-based inter prediction method and apparatus|
EP3944623A1|2019-03-22|2022-01-26|LG Electronics Inc.|Dmvr-based inter prediction method and apparatus|
WO2020197290A1|2019-03-26|2020-10-01|인텔렉추얼디스커버리 주식회사|Image encoding/decoding method and apparatus|
KR20220002996A|2019-04-25|2022-01-07|오피 솔루션즈, 엘엘씨|Candidates in frames with global motion|
CN114009038A|2019-04-25|2022-02-01|Op方案有限责任公司|Signaling of global motion vectors in picture headers|
EP3959889A1|2019-04-25|2022-03-02|OP Solutions, LLC|Adaptive motion vector prediction candidates in frames with global motion|
WO2020219948A1|2019-04-25|2020-10-29|Op Solutions, Llc|Selective motion vector prediction candidates in frames with global motion|
EP3965420A1|2019-04-30|2022-03-09|Wilus Institute of Standards and Technology Inc.|Video signal processing method and apparatus using adaptive motion vector resolution|
CN114175656A|2019-06-03|2022-03-11|Op方案有限责任公司|Merging candidate reordering based on global motion vector|
WO2020247577A1|2019-06-04|2020-12-10|Beijing Dajia Internet Information Technology Co., Ltd.|Adaptive motion vector resolution for affine mode|
CN113940073A|2019-06-17|2022-01-14|北京达佳互联信息技术有限公司|Method and apparatus for decoder-side motion vector refinement in video coding|
WO2020257787A1|2019-06-21|2020-12-24|Beijing Dajia Internet Information Technology Co., Ltd.|Methods and devices for prediction dependent residual scaling for video coding|
CN112437312A|2019-08-26|2021-03-02|腾讯科技(深圳)有限公司|Video decoding method, encoding method, device, equipment and storage medium|
US20210092357A1|2019-09-19|2021-03-25|Alibaba Group Holding Limited|Methods for constructing a merge candidate list|
WO2020251417A2|2019-09-30|2020-12-17|Huawei Technologies Co., Ltd.|Usage of dct based interpolation filter and enhanced bilinear interpolation filter in affine motion compensation|
WO2021068954A1|2019-10-12|2021-04-15|Beijing Bytedance Network Technology Co., Ltd.|High level syntax for video coding tools|
WO2021086153A1|2019-10-31|2021-05-06|삼성전자 주식회사|Video decoding method and apparatus, and video encoding method and apparatus for performing inter prediction according to affine model|
WO2021093730A1|2019-11-11|2021-05-20|Mediatek Inc.|Method and apparatus of signaling adaptive motion vector difference resolution in video coding|
WO2021185345A1|2020-03-19|2021-09-23|FG Innovation Company Limited|Device and method for coding video data|
WO2021249363A1|2020-06-08|2021-12-16|Beijing Bytedance Network Technology Co., Ltd.|Constraints on intra block copy using non-adjacent neighboring blocks|
法律状态:
2021-11-03| B350| Update of information on the portal [chapter 15.35 patent gazette]|
优先权:
申请号 | 申请日 | 专利标题
US201762519007P| true| 2017-06-13|2017-06-13|
US62/519,007|2017-06-13|
US16/003,269|US10602180B2|2017-06-13|2018-06-08|Motion vector prediction|
US16/003,269|2018-06-08|
PCT/US2018/036883|WO2018231700A1|2017-06-13|2018-06-11|Motion vector prediction|
[返回顶部]